草庐IT

ruby - rails omniauth 和 UTF-8 错误

全部标签

ruby-on-rails - 如何在 Ruby on Rails 中添加自定义路由、 Controller 和操作?

我有一个RubyonRails和ActiveAdmin应用程序。除了添加和注册一些模型外,我基本上没有更改任何默认配置。我想使用类似GET/heartbeat的路由启用我的应用程序,并使用简单的字符串响应客户端/用户。我想知道如何执行以下步骤:将自定义路由添加到我的routes.rb文件。在app/controllers路径下添加自定义Controller。执行自定义操作并在没有任何View的情况下直接响应用户。 最佳答案 路线.rb:get'heartbeat'=>"custom_controller#heartbeat"自定义C

Ruby,将字符串与 UTF-8 字符进行比较时出现问题

我有这2个UTF-8字符串:a="N\u01b0\u0303"b="N\u1eef"它们看起来很不一样,但渲染后是一样的:irb(main):039:0>puts"#{a}-#{b}"Nữ-Nữa版本是我存储在数据库中的版本。b版本是来自浏览器的POST请求,我不知道为什么浏览器会发送不同的UTF8字符组合,而且这种情况并不总是发生,我不能'在我的开发环境中重现该问题,它发生在生产环境中并且占总请求的百分比。情况是我尝试比较它们,但它们返回false:irb(main):035:0>a==b=>false我尝试过不同的方法,例如强制编码:irb(main):022:0>c.force

ruby - 在 Windows 上安装 RMagick

我已经对此进行了研究,并且已经在我的一台计算机上研究了几个小时。我大约3周前在我的台式电脑上安装了RMagick,它相当复杂。我不记得我采取的具体步骤,我真的很沮丧。我已经将ImageMagick安装到我机器上的C:\ImageMagick目录中我也为Ruby安装了开发工具包。我还将rmagick-rmagick-v2-2-g564f157放入我的C:中正确的gems文件夹中它在C:\Ruby22-x64\lib\ruby\gems\2.2.0\gems我收到以下错误:我将输入:geminstallrmagick--'--with-opt-dir="c:\ImageMagick"'并得

ruby-on-rails - Rails 5 - config.assets.compile 应该是真的 - 为什么?

我正在开发Rails5应用程序并使用Assets管道。它在开发模式下运行良好,但如果我尝试在生产模式下运行它,它无法正确加载图像和样式。我查了一下,发现是因为config.assets.compile=false在config/environments/production.rb中除非我将其设置为真,否则它根本不起作用。我知道实时编译不适合生产,有什么解决方案? 最佳答案 有两个与在Rails服务器中提供Assets相关的选项:Assets编译config.assets.compile=true指Assets编译。也就是说,当Rai

ruby-on-rails - 如何按散列值在 JSON 散列数组中进行搜索?

我正在使用Postgres的JSON数据类型来存储一些信息。例如,我有一个模型User,它有一个字段locations,它包含一个json文档(包含键和值对的对象数组),格式如下:[{"name":"Location1",kind:"house"},{"name":"Location2",kind:"house"},{"name":"Location3",kind:"office"},...{"name":"LocationX",kind:"house"}]我想用.where查询JSON数据类型。我想查询至少有一个位置为kind=office的用户。谢谢!

ruby-on-rails - Rails : Before process_action callback :authenticate_user! 尚未定义

我正在创建一个包含设计的Rails应用程序。我正在尝试使用Ngrok将Twilio消息传递添加到我的站点,我使用了本教程:https://www.twilio.com/blog/2016/04/receive-and-reply-to-sms-in-rails.html我能够在控制台中打开Ngrok并获取他们为我的网址提供的网络ID。当我将url插入浏览器时,我不断收到此错误。我应该访问我自己的Rails本地应用程序。不知道怎么了。我在为ngrok制作的消息传递Controller中添加的内容:classMessagesController"reply"defreplymessage_

ruby - 强制方法的默认值

给定方法:deffoo(a,b=5,c=1)returna+(b*c)end运行foo(1)应该返回6。但是,您将如何着手做这样的事情:foo(1,DEFAULT,2)。我需要更改第三个值,但使用默认的第二个值。你会怎么做?(注意:我不能只更改变量的顺序,因为它们是来自gem的方法的参数) 最佳答案 根据提出的条件,您不能这样做。这种情况正是在Ruby2中引入命名(关键字)参数的原因。但是根据问题的条款,您的具有默认值的参数未命名.因此,它们是positional—这就是为什么可选参数必须放在最后—因此,规则是必须使用至少一个参数调

ruby-on-rails - PG::UndefinedTable - 错误:关系 "active_storage_attachments"不存在

我刚刚为产品和购物车创建了一个简单的应用程序,其中包含名称、价格和附件。它工作正常,没有任何问题。我决定分别使用rails-admingem和devise创建管理和身份验证。我已按照说明进行操作here.在我到达rails_admin部分之前,一切都很好。除了使用github页面上描述的rails_admin1.3版本外,我按照描述做了所有事情。我也在链接上尝试了旧版本,但每次都遇到这个错误PG::UndefinedTable-ERROR:relation"active_storage_attachments"doesnotexistLINE8:WHEREa.attrelid='"ac

ruby - 如何将 Interactive Ruby 整合到我的开发过程中?

我正在尝试找到一种更好的方法将IRB与我的常规ruby​​开发集成。目前我很少在我的代码中使用IRB。我只用它来验证语法或尝试一些小的东西。我知道我可以将我自己的代码加载到ruby​​中作为一个require'mycode'但这通常不符合我的编程风格。有时我要检查的变量超出范围或在循环内。有没有一种简单的方法可以启动我的脚本并在IRB内的某个点卡住?我想我正在寻找一种更简单的方法来调试我的ruby​​代码而不破坏我的F5(编译)键。也许有经验的ruby开发者可以和我分享一个更精简的开发方法。 最佳答案 安装ruby​​-debugg

ruby - 使用 Ruby 在命令行中包含文件

当这样运行ruby​​脚本时rubysome-script.rb我如何在其中动态包含一个文件(例如配置文件)? 最佳答案 如您所见,-r选项是您的好helper。它还适用于IRB:irb-ropen-uri将执行与require'open-uri'相同的操作FWIW,我需要通过命令行包含的最常见的东西是ruby​​gems。由于较新版本的ruby​​带有内置的gems,我不想编辑该文件,但包含它以进行测试。幸运的是,创造gem的人们添加了一点别名糖。您可以执行以下操作:ruby-rubygemsmyscript.rb而不是丑陋的:r